import React from 'react'
// 导入 axios 将 axios 挂载到 React 上
import axios from 'axios'

// axios 全局拦截器 处理 请求参数的 格式转换 及 参数的 校验
// `transformRequest` 允许在向服务器发送前，修改请求数据
// 只能用在 'PUT', 'POST' 和 'PATCH' 这几个请求方法
// 后面数组中的函数必须返回一个字符串，或 ArrayBuffer，或 Stream
axios.defaults.transformRequest = [function (data, headers) {
  // 对 data 进行任意转换处理
//   将请求参数 对象数据 转换成 表单格式数据
  let arr = []
    // 遍历参数 对象
    for (let key in data) {
        // 将参数对象 拼接成表单格式
        // str += key + '=' + pramat[key] + '&'最后一位 会多一个 & 符号
        arr.push(key + '=' + data[key])
    }

  return arr.join('&');
}],

// 设置全局的 baseURL 好处， 不同的环境 可以很好 切换请求地址
axios.defaults.baseURL = 'http://127.0.0.1:8888'
// 将 axios 挂载到组件的父类上
React.Component.prototype.$http = axios